package com.zkthink.ceres.tenant.dto;

import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 商家入驻
 * </p>
 *
 * @author vivi.huang
 * @since 2020-06-29
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "TenantApplySaveDTO", description = "商家入驻")
public class TenantApplySaveDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主体类型 2041：个人,4:个体工商户,2:企业,1708:其他组织
     */
    @ApiModelProperty(value = "主体类型 2041：个人,4:个体工商户,2:企业,1708:其他组织")
    @Length(max = 10, message = "主体类型 2041：个人,4:个体工商户,2:企业,1708:其他组织长度不能超过10")
    private String organizationType;
    /**
     * 店铺名称
     */
    @ApiModelProperty(value = "店铺名称")
    @Length(max = 250, message = "店铺名称长度不能超过250")
    private String storeName;
    /**
     * 客服电话
     */
    @ApiModelProperty(value = "客服电话")
    @Length(max = 250, message = "客服电话长度不能超过250")
    private String customerPhone;
    /**
     * 店铺负责人
     */
    @ApiModelProperty(value = "店铺负责人")
    @Length(max = 250, message = "店铺负责人长度不能超过250")
    private String storeHead;
    /**
     * 负责人电话
     */
    @ApiModelProperty(value = "负责人电话")
    @Length(max = 250, message = "负责人电话长度不能超过250")
    private String headMobile;
    /**
     * 店铺地址(详细)
     */
    @ApiModelProperty(value = "店铺地址(详细)")
    @Length(max = 250, message = "店铺地址(详细)长度不能超过250")
    private String storeAddressDetail;
    /**
     * 店铺地址(省)
     */
    @ApiModelProperty(value = "店铺地址(省)")
    @Length(max = 250, message = "店铺地址(省)长度不能超过250")
    private String storeAddressProvince;
    /**
     * 店铺地址(城市)
     */
    @ApiModelProperty(value = "店铺地址(城市)")
    @Length(max = 250, message = "店铺地址(城市)长度不能超过250")
    private String storeAddressCity;
    /**
     * 经营者姓名
     */
    @ApiModelProperty(value = "经营者姓名")
    @Length(max = 250, message = "经营者姓名长度不能超过250")
    private String legalPerson;
    /**
     * 证件类型
     */
    @ApiModelProperty(value = "证件类型 1:中国大陆居民身份证 2：中国香港居民来往内地通行证 3：中国澳门居民来往内地通行证 4：中国台湾居民来往大陆通行证 5：其他国家与地区居民护照")
    @Length(max = 250, message = "证件类型长度不能超过250")
    private String idDocType;
    /**
     * 身份证号码
     */
    @ApiModelProperty(value = "身份证号码")
    @Length(max = 250, message = "身份证号码长度不能超过250")
    private String idCardNumber;
    /**
     * 身份证有效期限(开始)
     */
    @ApiModelProperty(value = "身份证有效期限(开始)")
    @Length(max = 250, message = "身份证有效期限(开始)长度不能超过250")
    private String idCardValidTimeStart;
    /**
     * 身份证有效期限(结束)
     */
    @ApiModelProperty(value = "身份证有效期限(结束)")
    @Length(max = 250, message = "身份证有效期限(结束)长度不能超过250")
    private String idCardValidTimeEnd;
    /**
     * 证件照片正面照
     */
    @ApiModelProperty(value = "证件照片正面照")
    @Length(max = 250, message = "证件照片正面照长度不能超过250")
    private String idCardCopy;
    /**
     * 证件照片正面照文件路径
     */
    @ApiModelProperty(value = "证件照片正面照文件路径")
    @Length(max = 250, message = "证件照片正面照文件路径长度不能超过250")
    private String idCardCopyFilePath;
    /**
     * 证件照片国徽面照片
     */
    @ApiModelProperty(value = "证件照片国徽面照片")
    @Length(max = 250, message = "证件照片国徽面照片长度不能超过250")
    private String idCardNational;
    /**
     * 证件照片国徽面照片文件路径
     */
    @ApiModelProperty(value = "证件照片国徽面照片文件路径")
    @Length(max = 250, message = "证件照片国徽面照片文件路径长度不能超过250")
    private String idCardNationalFilePath;
    /**
     * 手持证件照
     */
    @ApiModelProperty(value = "手持证件照")
    @Length(max = 250, message = "手持证件照长度不能超过250")
    private String handHoldCard;
    /**
     * 手持证件照文件路径
     */
    @ApiModelProperty(value = "手持证件照文件路径")
    @Length(max = 250, message = "手持证件照文件路径长度不能超过250")
    private String handHoldCardPath;
    /**
     * 商户名称/企业名称/组织名称
     */
    @ApiModelProperty(value = "商户名称/企业名称/组织名称")
    @Length(max = 250, message = "商户名称/企业名称/组织名称长度不能超过250")
    private String merchantName;
    /**
     * 统一社会信用代码/组织机构代码
     */
    @ApiModelProperty(value = "统一社会信用代码/组织机构代码")
    @Length(max = 250, message = "统一社会信用代码/组织机构代码长度不能超过250")
    private String socialCreditCode;
    /**
     * 注册地址
     */
    @ApiModelProperty(value = "注册地址")
    @Length(max = 250, message = "注册地址长度不能超过250")
    private String companyAddress;
    /**
     * 注册地址(省)
     */
    @ApiModelProperty(value = "注册地址(省)")
    @Length(max = 250, message = "注册地址(省)长度不能超过250")
    private String companyAddressProvince;
    /**
     * 注册地址(市)
     */
    @ApiModelProperty(value = "注册地址(市)")
    @Length(max = 250, message = "注册地址(市)长度不能超过250")
    private String companyAddressCity;
    /**
     * 注册地址(区)
     */
    @ApiModelProperty(value = "注册地址(区)")
    @Length(max = 250, message = "注册地址(区)长度不能超过250")
    private String companyAddressDistrict;
    /**
     * 营业期限(开始)
     */
    @ApiModelProperty(value = "营业期限(开始)")
    @Length(max = 250, message = "营业期限(开始)长度不能超过250")
    private String businessTimeStart;
    /**
     * 营业期限(结束)
     */
    @ApiModelProperty(value = "营业期限(结束)")
    @Length(max = 250, message = "营业期限(结束)长度不能超过250")
    private String businessTimeEnd;
    /**
     * 营业执照证件扫描件
     */
    @ApiModelProperty(value = "营业执照证件扫描件")
    @Length(max = 10, message = "营业执照证件扫描件长度不能超过10")
    private String businessLicenseCopy;
    /**
     * 证件扫描件 文件路径
     */
    @ApiModelProperty(value = "证件扫描件 文件路径")
    @Length(max = 250, message = "证件扫描件 文件路径长度不能超过250")
    private String businessLicenseCopyFilePath;
    /**
     * 审核状态 1：待处理，2：已通过，3：已拒绝
     */
    @ApiModelProperty(value = "审核状态 1：待处理，2：已通过，3：已拒绝")
    private Integer auditState;
    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    private LocalDateTime auditTime;
    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    private LocalDateTime applyTime;
    /**
     * 生效日期类型，1：即时生效，2：指定日期
     */
    @ApiModelProperty(value = "生效日期类型，1：即时生效，2：指定日期")
    private Integer effectDateType;
    /**
     * 生效日期
     */
    @ApiModelProperty(value = "生效日期")
    private LocalDateTime effectTime;
    /**
     * 生效时限(年)
     */
    @ApiModelProperty(value = "生效时限(年)")
    private Integer effectTimeLimit;
    /**
     * 拒绝原因
     */
    @ApiModelProperty(value = "拒绝原因")
    @Length(max = 1000, message = "拒绝原因长度不能超过1000")
    private String rejectReason;
    /**
     * 有效期类型 1:长期，2：定期
     */
    @ApiModelProperty(value = "有效期类型 1:长期，2：定期")
    private Integer expiryDateType;

}
